package sun.superstring.singleinstance;

public class Test2 {
    public static void main(String[] args) {
        // 这样写不专业，可以随时将A的唯一对象干掉，所以需要写一个get方法，用于返回A类的唯一对象
        AA.a = null;
        System.out.println(AA.a);
    }
}

// 设计成单例设计模式：饿汉式单例
class AA {
    // 2.定义一个静态变量，用于记住本类的一个唯一对象
    public static AA a = new AA();
    // public static final A a = new A();  // 加上final，防止二次修改
    // private static A a = new A();  // 加上private，防止外部修改，只能内部改，不暴露出去
    // 加上private后，只能内部使用，所以需要一个public方法将这个静态的变量暴露出去

    // 1.私有化构造方法：确保单例类对外不能创建太多对象，单例才有可能性
    private AA(){
    }
}
